<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

  
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">

  
  <title>Function argument format</title>
</head>


<body style="background-image: url(about:blank);">

<div style="text-align: left;"><big><big><span style="font-weight: bold;">Function argument format</span></big></big><br>

</div>

<br>

&nbsp;&nbsp;&nbsp; This document can help you to understand how are
the method arguments and return values transfered remotely to
server and back. The following table lists possible combinations of
argument types and directions, and corresponding processing on client
and server side.<br>

<p>&nbsp;&nbsp;&nbsp; The first column contains the argument direction,
i.e. the direction of actual data flow that can be either from client
to server or from server to client, or both. The second one is argument
declaration in your header file, where <span style="font-family: monospace;">obj</span> stands for any type. The '<span style="font-family: monospace;">c</span>' in the <span style="font-style: italic;">note</span> column
says that the particular argument requires a count of transfered
objects to be specified with <span style="font-family: monospace;">net_count()</span>
keyword, since there's no way for the generator to deduce it
automatically. The value in the <span style="font-style: italic;">transfered
count</span>
column enumerates how many objects will be actually transfered, and the
last two columns
specify declarations and handling for dispatch and client generated
implementation (.cpp) files.</p>

<table style="text-align: left; height: 1012px; width: 991px;" border="1" cellpadding="2" cellspacing="2">

  <tbody>

    <tr>

      <td colspan="1" rowspan="2" style="vertical-align: top; background-color: rgb(204, 204, 204); font-weight: bold; text-align: center;">arg.
direction<br>

      </td>

      <td colspan="1" rowspan="2" style="vertical-align: top; text-align: center; background-color: rgb(204, 204, 204); font-weight: bold;">service.h<br>

declaration<br>

      <sup><a href="file:///M:/cvs/sf/coid/doc/function_argument_format.html#n1">see
1</a></sup><br>

      </td>

      <td colspan="1" rowspan="2" style="vertical-align: top; background-color: rgb(204, 204, 204); font-weight: bold;">
      
      <div style="text-align: center;">note<br>

      </div>

      </td>

      <td colspan="1" rowspan="2" style="vertical-align: top; background-color: rgb(204, 204, 204); font-weight: bold;">
      
      <div style="text-align: center;">count<br>

transfered<br>

(objects)<br>

      </div>

      </td>

      <td colspan="3" rowspan="1" style="vertical-align: top; text-align: center; background-color: rgb(204, 204, 204); font-weight: bold;">dispatch.cpp<br>

      </td>

      <td style="vertical-align: top; text-align: center; background-color: rgb(204, 204, 204); font-weight: bold;">client.cpp<br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top; text-align: center; background-color: rgb(204, 204, 204); font-weight: bold;">declaration<br>

      </td>

      <td style="vertical-align: top; text-align: center; background-color: rgb(204, 204, 204); font-weight: bold;">function
call<br>

      </td>

      <td style="vertical-align: top; text-align: center; background-color: rgb(204, 204, 204); font-weight: bold;">streaming
out<br>

      </td>

      <td style="vertical-align: top; background-color: rgb(204, 204, 204); font-weight: bold;"><br>

      </td>

    </tr>

    <tr>

      <td colspan="1" rowspan="3" style="vertical-align: top; font-weight: bold; text-align: center;">return<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">1
      <br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">x =
fnc(...);<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x;</td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&gt;&gt; x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">char *<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><span style="font-family: monospace;">string</span><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">char *
x; </td>

      <td style="vertical-align: top; font-family: monospace;">x =
fnc(...); </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x; </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&gt;&gt; x; </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj &amp;<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><span style="color: rgb(204, 0, 0);"></span><span style="color: rgb(204, 0, 0);"></span> <br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">1<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj&amp;
x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">x =
fnc(...);<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&gt;&gt; x;<br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top;"><br>

      </td>

      <td style="vertical-align: top;"><span style="font-family: monospace;">obj *</span></td>

      <td style="vertical-align: top; font-family: monospace; text-align: center; background-color: rgb(255, 0, 0);"><span style="color: rgb(204, 0, 0);">Err</span></td>

      <td style="vertical-align: top;"><br>

      </td>

      <td style="vertical-align: top;"><br>

      </td>

      <td style="vertical-align: top;"><br>

      </td>

      <td style="vertical-align: top;"><br>

      </td>

      <td style="vertical-align: top;"><br>

      </td>

    </tr>

    <tr>

      <td colspan="1" rowspan="5" style="vertical-align: top; text-align: center; font-weight: bold; background-color: rgb(255, 204, 127);">in<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj<br>

obj &amp;<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">1<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&lt;&lt; x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">char
*<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">string<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">char
* x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
x );</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&lt;&lt; x;<br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
*<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">c
      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">count<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">localarray&lt;obj&gt;
x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr.write(
x, count );</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
*&amp;<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 0, 0);"><span style="color: rgb(204, 0, 0);">Err</span><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
**<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 0, 0);"><span style="color: rgb(204, 0, 0);">Err</span><span style="color: rgb(204, 0, 0);"></span> </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

    </tr>

    <tr>

      <td colspan="1" rowspan="7" style="vertical-align: top; text-align: center; font-weight: bold;">inout<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 0, 0);"><span style="color: rgb(204, 0, 0);">Err</span><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">see
output type for streaming
args out<br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">char
*&amp;</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">string</td>

      <td style="vertical-align: top; font-family: monospace;">char * x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">fnc( x );</td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x;</td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">char **</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">d
      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">string<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">char * x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">fnc(
&amp;x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; *x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj &amp;</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">1<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">fnc( x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj *</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">1<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">fnc(
&amp;x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; *x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj
*&amp;</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">c,d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">count<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">localarray&lt;obj&gt;
x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">fnc(
x.get_*&amp;() );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr.write(
x, count );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr.write(
x, count );
delete/free( x );<br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj **</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">c,d
      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">count<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">localarray&lt;obj&gt;
x;</td>

      <td style="vertical-align: top; font-family: monospace;">fnc(
x.get_**() );</td>

      <td style="vertical-align: top; font-family: monospace;">bstr.write(
x, count );</td>

      <td style="vertical-align: top; font-family: monospace;">bstr.write(
*x, count );
delete/free( *x );</td>

    </tr>

    <tr>

      <td colspan="1" rowspan="7" style="vertical-align: top; text-align: center; font-weight: bold; background-color: rgb(255, 204, 127);">out<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 0, 0);"><span style="color: rgb(204, 0, 0);">Err</span><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">char
*&amp;<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">string<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">char
* x;</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
x );</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&lt;&lt; x;</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&gt;&gt; x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">char
**</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">string<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">char
* x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
&amp;x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&lt;&lt; x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&gt;&gt; *x;<br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
&amp;</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">1<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&lt;&lt; x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&gt;&gt; x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
*</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">1<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
&amp;x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&lt;&lt; x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr
&gt;&gt; *x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
*&amp;</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">c,d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">count<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">localarray&lt;obj&gt;
x;</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
x.get_*&amp;() );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr.write(
x, count );</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
*&amp; x;&nbsp;&nbsp; x =
new obj[count]; bstr.read( x, count );</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
**</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">c,d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 204, 127);">count<br>

      </td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">localarray&lt;obj&gt;
x;</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">fnc(
x.get_**() );</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">bstr.write(
x, count );</td>

      <td style="vertical-align: top; font-family: monospace; background-color: rgb(255, 204, 127);">obj
** x;&nbsp;&nbsp; *x = new
obj[count]; bstr.read( *x, count );<br>

      </td>

    </tr>

    <tr>

      <td colspan="1" rowspan="7" style="vertical-align: top; text-align: center; font-weight: bold;">fetch<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 0, 0);"><span style="color: rgb(204, 0, 0);">Err</span><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">xxxxx
see output type for
streaming args out </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj *<br>

obj &amp;</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 0, 0);"><span style="color: rgb(204, 0, 0);">Err</span><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj
*&amp;</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">1<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj * x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">fnc( x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; *x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj
&amp; x; bstr &gt;&gt; x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj **</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">1<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj * x;</td>

      <td style="vertical-align: top; font-family: monospace;">fnc(
&amp;x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr
&lt;&lt; *x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj * x;
bstr &gt;&gt; *x;</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj
*&amp;</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">c,d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">count<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj * x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">fnc( x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr.write(
x, count );</td>

      <td style="vertical-align: top; font-family: monospace;">obj
*&amp; x;&nbsp;&nbsp; x =
new obj[count]; bstr.read( x, count );</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj **</td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">c,d<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;">count<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">obj * x;<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">fnc(
&amp;x );<br>

      </td>

      <td style="vertical-align: top; font-family: monospace;">bstr.write(
x, count );</td>

      <td style="vertical-align: top; font-family: monospace;">obj **
x;&nbsp;&nbsp; *x = new
obj[count]; bstr.read( *x, count );</td>

    </tr>

    <tr>

      <td style="vertical-align: top; font-family: monospace;">obj ***<br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace; background-color: rgb(255, 0, 0);"><span style="color: rgb(204, 0, 0);">Err</span><br>

      </td>

      <td style="vertical-align: top; text-align: center; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

      <td style="vertical-align: top; font-family: monospace;"><br>

      </td>

    </tr>

  
  </tbody>
</table>

<div style="margin-left: 40px;"><br>

<span style="color: rgb(204, 0, 0);">Err</span> = Error - invalid
combination<br>

c = count must be specified (<span style="font-family: monospace;">net_count(</span><span style="font-style: italic; font-family: monospace;">num</span><span style="font-family: monospace;">)</span> keyword)<br>

d = client is responsible for deleting the argument - use delete (or
free if you specified "<span style="font-family: monospace;">net_malloc</span>"
for the argument) to do that<br>

<br>

</div>

<p><br>

&nbsp;&nbsp;&nbsp; The style of declarations generally assumes that
pointers in arguments are used to pass objects or arrays of objects by
reference, and not that someone intends to pass the particular address
they hold. This is useful since client and server applications usually
reside in different processes, or even on different machines, and
address from one process is generally of no use in another one.</p>

<p>&nbsp;&nbsp;&nbsp; However, there are certain situations when
transfering an address is useful, and one of this situations is when
both client and server reside in the same process and when the client
communicates with service through <span style="font-style: italic;">interface</span>.
This is usual when a service uses other services running in the
framework, and chooses to use the <span style="font-style: italic;">interface</span>
client to avoid the performance penalty resulting from unnecessary
streaming and decoding of arguments. Interface directly binds methods
in interface client to methods of destination service.</p>

<p><sup style="color: rgb(255, 0, 0); font-weight: bold;">1</sup>&nbsp;&nbsp;&nbsp;
If you intend to transfer a pointer value (a physical address), you can
use the <span style="font-family: monospace;">net_ptr</span> keyword
before argument declaration. The result is that the generator takes
inner <span style="font-family: monospace;">obj*</span> for the
transferred type (instead of <span style="font-family: monospace;">obj</span>
alone) and checks that type according to the table. The <span style="font-family: monospace;">intp</span> type is used to transfer
pointers.<br>

</p>

</body>
</html>
